package com.jt;

import com.jt.demo.User;
import org.junit.jupiter.api.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;


public class SpringDemo1 {

    String source ="spring.xml";
    //spring管理的测试API
@Test
    public void test1(){
    //创建spring容器,并且加载指定的配置文件对象,对象已经交给容器管理
        ApplicationContext context=
                new ClassPathXmlApplicationContext(source);

        User user1 = context.getBean(User.class);
     //从容器中获取对象
    //获取对象可以用两种方式获取:
    //获取方式一: 通过对象k键 id getBean("user")获取对象,
    //输入 context.getBean("user")按alt+enter 创建对象
    // 则显示 Object user = context.getBean("user")
    //因为context.getBean("user")要创建对象,返回是Object类型的,
    // 因为Object是一切类的超类,所以必须向下造型,
    //所以用 User user = (User) context.getBean("user");向下造型

    User user2 = (User) context.getBean("user");
    //获取方式二:可以通过反射获取对象 用 User.class 这个反射对象来创建对象
    //再用bean文件中的方法拿到反射源class文件来创建对象
    //输入context.getBean(User.class)按alt+enter创a建对象


    user1.say();
    System.out.println(user1 == user2);
}
}
